home *** CD-ROM | disk | FTP | other *** search
/ SoundMaker 2003 (Professional Edition) / SoundMaker 2003 - Professional Edition.iso / midi tool / midioxse.exe / DATA.1 / VBSDemo.vbs < prev    next >
Text File  |  1999-11-26  |  4KB  |  164 lines

  1. ' MIDIOX Test - Event Sink Example
  2. ' Copyright (c) 2000 by Jamie O'Connell
  3. '
  4. ' This script is an example of doing VBScript with MIDI-OX
  5. option explicit
  6.  
  7. dim mox
  8. dim str, strWrk
  9. dim n, ii, nInst
  10. dim bGo
  11.  
  12. ' Wsh version
  13. Str = Wscript.Name & " ver. " & Wscript.Version
  14. MsgBox str
  15.  
  16. ' Create object
  17. Set mox = WScript.CreateObject("MoxKart.MoxWire.1", "Tester_")  ' make VB construct an input handler (below)
  18.  
  19. str = "MIDI-OX"
  20. n = mox.NumberInstances
  21. If n > 0 Then
  22.   str = str & ":" & CStr( n )
  23. Else
  24.   MsgBox "No Instances"
  25. End If
  26.  
  27. str = str & " "
  28. str = str & mox.GetAppVersion 
  29.  
  30. MsgBox str
  31.  
  32. If n > 0 then
  33.   nInst = 1
  34.   If n > 1 then
  35.      nInst = InputBox( "Attach to which instance? (1 to " & n & ")", "Attach", "1" )
  36.   End If
  37.   If mox.AttachInstance( nInst ) = 1 Then     
  38.      MsgBox "Attached Instance: " & nInst
  39.   Else
  40.      MsgBox "Could not Attach Instance: " & nInst
  41.   End If
  42. ElseIf vbYes = MsgBox( "Launch MIDI-OX?", vbYesNo + vbQuestion, "Launch"  ) Then
  43.   If mox.LaunchInstance = 1 Then
  44.      nInst = 1
  45.      If mox.AttachInstance( nInst ) = 1 Then    
  46.         MsgBox "Launched and Attached Instance: " & nInst
  47.      Else
  48.         MsgBox "Launched but could not Attach Instance: " & nInst   
  49.      End If
  50.   Else
  51.      MsgBox "Launch MIDI-OX Failed"
  52.   End If
  53.   n = mox.NumberInstances
  54. End if
  55.  
  56. ' *** System devices
  57. str = "Sys MIDI In Devices: " & mox.NumSysMidiIn
  58. strWrk = mox.GetFirstSysMidiInDev
  59.  
  60. Do while strWrk <> ""
  61.    str = str & vbCrLf & "  " & strWrk
  62.    strWrk = mox.GetNextSysMidiInDev
  63. Loop
  64.  
  65. MsgBox Str
  66.  
  67. str = "Sys MIDI Out Devices: " & mox.NumSysMidiOut
  68. strWrk = mox.GetFirstSysMidiOutDev
  69.  
  70. Do while strWrk <> ""
  71.    str = str & vbCrLf & "  " & strWrk
  72.    strWrk = mox.GetNextSysMidiOutDev
  73. Loop
  74.  
  75. MsgBox Str
  76.  
  77. ' *** MIDI-OX devices
  78. If mox.IsAttached = 1 then
  79.    str = "Open MIDI In Devices: " & mox.NumOpenMidiIn
  80.    strWrk = mox.GetFirstOpenMidiInDev
  81.  
  82.    Do while strWrk <> ""
  83.       str = str & vbCrLf & "  " & strWrk
  84.       strWrk = mox.GetNextOpenMidiInDev
  85.    Loop
  86.  
  87.    MsgBox Str
  88.  
  89.    str = "Open MIDI Out Devices: " & mox.NumOpenMidiOut
  90.    strWrk = mox.GetFirstOpenMidiOutDev
  91.  
  92.    Do while strWrk <> ""
  93.       str = str & vbCrLf & "  " & strWrk
  94.       strWrk = mox.GetNextOpenMidiOutDev
  95.    Loop
  96.  
  97.    MsgBox Str
  98. End if
  99.  
  100. ' Send a SysEx string
  101. If mox.IsAttached = 1 then
  102.    If vbYes = MsgBox( "Send SysEx String?", vbYesNo + vbQuestion, "Sysx String"  ) Then
  103.     strWrk = "F0 41 10 42 11 48 00 00 00 1D 10 0B F7"
  104.       mox.SendSysExString strWrk
  105.       MsgBox "Done String: " & strWrk 
  106.    End If
  107. End If
  108.  
  109.  
  110. ' *** Try out our MIDI Sink
  111. If mox.IsAttached = 1 then
  112.    If vbYes = MsgBox( "Divert MIDI Input?", vbYesNo + vbQuestion, "MIDI Notes"  ) Then
  113.       mox.DivertMidiInput = 1
  114.    Else
  115.       mox.DivertMidiInput = 0
  116.    End If
  117.  
  118.    mox.FireMidiInput = 1
  119.    MsgBox "Press OK to end MIDI Loop"
  120.    mox.FireMidiInput = 0
  121.    mox.DivertMidiInput = 0
  122. End If
  123.  
  124. MsgBox "End Demo"
  125.  
  126. Set str    = nothing
  127. Set strWrk = nothing
  128. Set mox    = nothing
  129.  
  130. ' Exit Point
  131. '------------------------------------------
  132.  
  133. Sub Tester_MidiInput( ts, stat, chan, dat1, dat2)
  134.    dim newstat
  135.  
  136.    newstat = stat + chan
  137.    If mox.DivertMidiInput = 0 Then
  138.       If stat = &h90  Or stat = &h80 Then
  139.          chan = chan + 1
  140.          If chan > 15 Then
  141.             chan = 0
  142.          End If
  143.       End If
  144.       newstat = stat + chan ' send out next chan 
  145.    End If
  146.  
  147.    mox.OutputMidiMsg newstat, dat1, dat2
  148.     
  149. End Sub
  150.  
  151. '------------------------------------------
  152. ' connection point sink for SysEx
  153.  
  154. Sub Tester_SysExInput( strSysEx )
  155.    mox.SendSysExString strSysEx    
  156. End Sub
  157.  
  158. '------------------------------------------
  159.  
  160. Sub Tester_OnTerminateMidiInput()
  161.    MsgBox "MIDI Input Termination Received From MIDI-OX"
  162.    mox.FireMidiInput = 0
  163.    mox.DivertMidiInput = 0
  164. End Sub